package domain;

import java.util.ArrayList;

public class PokemonMetDevoltieEnEvolutie implements Pokemon, Evolutie, Devolutie {
	private String naam; 
	private String omschrijving;
	private int nummer;
	private ArrayList<Aanval> aanvallen;
	private Pokemon evolutie;
	private Pokemon devolutie;

	public PokemonMetDevoltieEnEvolutie(String naam, String omschrijving, int nummer, ArrayList<Aanval>  aanvallen, Pokemon evolutie, Pokemon devolutie){
		setNaam(naam);
		setOmschrijving(omschrijving);
		setNummer(nummer);
		setAanvallen(aanvallen);
		setEvolutie(evolutie);
		setDevolutie(devolutie);
	}

	private void setNaam(String naam) {
		if (naam != null && naam != ""){
			this.naam = naam;
		}
	}

	@Override
	public String getNaam() {
		return naam;
	}
	
	private void setOmschrijving(String omschrijving) {
		if (omschrijving != null && omschrijving != ""){
			this.omschrijving = omschrijving;
		}		
	}

	@Override
	public String getOmschrijving() {
		return omschrijving;
	}

	
	private void setNummer(int nummer) {
		if (nummer < 0){
			this.nummer = nummer;
		}
	}
	
	@Override
	public int getNummer() {
		return nummer;
	}
	
	private void setAanvallen(ArrayList<Aanval> aanvallen) {
		if (aanvallen != null ){
			this.aanvallen = aanvallen;
		}		
	}

	@Override
	public ArrayList <Aanval> getAanvallen() {
		return aanvallen;
	}
	
	
	private void setEvolutie(Pokemon p){
		if (p != null ){
			this.evolutie = p;
		}
	}
	
	@Override
	public Pokemon getEvolutie(){
		return evolutie;
	}
	

	
	private void setDevolutie(Pokemon p){
		if (p != null ){
			this.devolutie = p;
		}
		
	}
	
	public Pokemon getDevolutie(){
		return devolutie;
		
	}
	
	@Override
	public String toString() {
		String uitvoer =  "Pokemon : " +getNummer() + " " + getNaam() + "\nOmschrijving: " + getOmschrijving() + "\n" ;
		uitvoer = uitvoer + "Devolutie: " + getDevolutie() + "\n";
		uitvoer = uitvoer + "Evolutie: " + getEvolutie() + "\nHeeft volgende aanvallen:\n";
		for (Aanval a : getAanvallen()){
			uitvoer = uitvoer + a.toString() + "\n"; 
		}		
		return uitvoer;
	}

}
